/*
获取用户信息：
   1：定义api
   2:vuex定义存储与调用api获取用户信息
   3：触发：导航守卫有token且进入的非登陆页时调用触发获取用户信息
*/

import router from '@/router'
import store from '@/store' //  store===this.$store
// 导航守卫
const whitePage = ['/login', '/404']
router.beforeEach(async(to, from, next) => {
  // 登陆了才可进入需要登陆页面（除白名单页面以外），登陆了不可以进入登陆页
  /*
     有token
          判断要去的页面是不是登陆页
                 是   ：  去首页
                 不是 ： 正常进入
     没有token
         判断要去的页面是不是白名单页面
                 是白名单页面：正常进入
                 不是白名单：跳转到登陆页
*/
  console.log('to', to)
  if (store.state.user.token) {
    if (to.path.toLowerCase() === '/login') {
      next('/')
    } else {
      // 获取用户信息:没有用户信息才获取用户信息
      if (!store.state.user.userInfo.userId) {
        // console.log(1)
        await store.dispatch('user/getUserInfo')
        // next({ path: '/',query:{},xxxx:12})===next('/')
        // next可以理解 成this.$router.push({path:'/'})
        next(to)
      } else {
        next()
      }
    }
  } else {
    if (whitePage.includes(to.path.toLowerCase())) {
      next()
    } else {
      next('/login')
    }
  }
})
router.afterEach((to, from) => {})
